package com.ustropo.financas;

import java.util.Date;

import com.ustropo.financas.conta.IConta;
import com.ustropo.financas.despesa.IDespesa;
import com.ustropo.financas.receita.IReceita;
import com.ustropo.financas.transferencia.ITransferencia;


/**
 * Interface que representa uma movimentacao genérica em uma conta.
 * Pode ser de três tipos:
 * 	- {@link IDespesa}
 *  - {@link ITransferencia}
 *  - {@link IReceita}
 * 
 * @author Fernando C. de Souza
 * @version 1.0
 * @since 28/10/2013
 */
public interface IMovimentacao extends Identificacao {
	/**
	 * Retorna o valor da movimentacao
	 * @return valor
	 */
	public double getValor();
	/**
	 * Muda o valor da movimentacao
	 * @param valor
	 */
	public void setValor(double valor);
	/**
	 * Retorna a data que esta movimentacao foi realizada
	 * @return data
	 */
	public Date getDate();
	/**
	 * Muda a data que esta movimentacao foi realizada
	 * @param date
	 */
	public void setDate(Date date);
	/**
	 * Retorna a {@link IConta} que esta movimentacao foi realizada
	 * @return conta
	 */
	public IConta getConta();
	/**
	 * Muda a {@link IConta} que esta movimentacao foi realizada
	 * @param conta
	 */
	public void setConta(IConta conta);

}
